package com.soft.mainsite.module.data.dao;

import com.soft.mainsite.module.data.dto.DataQueryParams;
import com.soft.mainsite.module.data.entity.MainData;
import com.soft.mainsite.module.data.viewmodel.CategoryVM;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.BaseMapper;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @Author: hjm
 * @Date: 2020/11/25 0:37
 * Stay hungry,stay foolish!
 */
@Repository
public interface DataMapper extends BaseMapper<MainData> {

    /**
     * 分页查询资料相关列表
     *
     * @param queryParams 分页查询条件
     * @return 资料相关列表
     */
    List<MainData> pageDataByConditions(@Param("params") DataQueryParams queryParams);

    /**
     * 新增上传文件资料
     *
     * @param mainData 上传文件资料
     * @return 是否上传成功
     */
    int saveMainData(@Param("mainData") MainData mainData);

    /**
     * 根据id集合批量删除
     *
     * @param ids id集合
     * @return 是否删除成功
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据学科名字模糊查询学科列表
     *
     * @param categoryName 学科名
     * @return 学科列表
     */
    List<CategoryVM> getCategoryList(@Param("categoryName") String categoryName);

    /**
     * 根据学科分类id查询资料列表
     *
     * @param categoryId 学科分类id
     * @return 资料列表
     */
    List<MainData> selectListByCategoryId(@Param("categoryId") Integer categoryId);

    /**
     * 查询体验碳的6条数据
     *
     * @param dataIdList 需要查询的6条数据资料id
     * @return 6条数据
     */
    List<MainData> experienceListByDataIdList(@Param("dataIdList") List<Integer> dataIdList);

    /**
     * 更新资料内容
     *
     * @param mainData 需要更新的资料
     * @return 是否更新成功
     */
    int updateMainData(@Param("mainData") MainData mainData);
}
